package leetcode.tencent.hot50;

/**
 * Created on 2021/1/4 。
 *
 * @author wll 1978992154@qq.com
 */

import java.util.HashSet;
import java.util.Set;

/**
 * 判断一个数组中是否含有重复元素
 */
public class ArrayHaveRepetitiveNode {

    /**
     * 这个是时间复杂度最高的算法
     * @param arr 数组
     * @return 布尔值
     */
    public static Boolean haveRepetitiveNode(int[] arr){
        for (int i = 0; i < arr.length; i++) {
            int temp = arr[i];
            for (int j = i; j < arr.length; j++) {
                if (temp == arr[j] && i != j){
                    return true;
                }
            }
        }
        return false;
    }

    /**
     * 使用set集合去重
     * @param nums 数组
     * @return 返回值
     */
    public static Boolean haveRepetitiveNode2(int[] nums){
        Set<Integer> set = new HashSet<Integer>();
        for (int num : nums) {
            if(!set.add(num)){
                return true;
            }
        }
        return false;
    }

    public static void main(String[] args) {
        int[] arr = new int[] {1,2,4,5,2,6,7,8};
        System.out.println(haveRepetitiveNode(arr));
        System.out.println(haveRepetitiveNode2(arr));
    }
}
